package 设计模式.r_状态模式;

import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.log.StaticLog;

/**
 * @author caihe
 * @date 2023/3/22 14:31
 */
public class MoveElevator implements ElevatorState {
    @Override
    public void open(Elevator elevator) {
        StaticLog.info("电梯正在移动中，不能打开电梯门...");
    }

    @Override
    public void close(Elevator elevator) {
        StaticLog.info("电梯正在移动中，电梯门是关闭的，按关闭按钮无效...");
    }

    @Override
    public void move(Elevator elevator) {
        StaticLog.info("正在移动到第{}层", elevator.getFloor());
        ThreadUtil.sleep(1000);
        StaticLog.info("电梯已到达第{}层，状态变化为open", elevator.getFloor());
        elevator.setState(new OpenElevator());
    }

    @Override
    public void stop(Elevator elevator) {

    }
}
